LINQ restrictie operatoren
Home

LINQ restrictie operatoren

LINQ restrictie operatoren

Beperkingsopertaoren nemen een inputreeks en retourneren een outputreeks met een beperkt aantal elementen ("gefilterd").

Where

De elementen, die deel uitmaken van de outputreeks, zijn die elementen die overeenkomen met de opgegeven beperking. Individuele uitvoerelementen worden niet gewijzigd of getransformeerd.

Personen[] personen =
{
    new Personen { Name = "Jan", Leeftijd = 60 },
    new Personen { Name = "An", Leeftijd = 100 },
    new Personen { Name = "Peter", Leeftijd = 15 },
    new Personen { Name = "Marijke", Leeftijd = 40 },
    new Personen { Name = "Judith", Leeftijd = 20 }
};
IEnumerable<Personen> vijftigPlussers = personen.
    Where(x => x.Leeftijd >= 50);
Console.WriteLine("Vijftigplussers:");
foreach (Personen persoon in vijftigPlussers)
{
    Console.WriteLine(persoon.Name);
}

De code toont het gebruik van de Where operator. Het predicaat x => x.Leeftijd >= 50 retourneert true voor elke persoon die 50 jaar is of meer. De code produceert de volgende output:

Jan
An

Een predicaat is een functie die een boolean true retourneert als aan een bepaalde voorwaarde is voldaan.

Met een overload van Where kan je de positieindex van een element aan het pedicaat meegeven. In het voorbeeld heeft Jan een positieindex van 0 en Judith een positieindex van 4. De volgende query retourneert Jan en Judith:

Personen[] personen =
{
    new Personen { Name = "Jan", Leeftijd = 60 },
    new Personen { Name = "An", Leeftijd = 100 },
    new Personen { Name = "Peter", Leeftijd = 15 },
    new Personen { Name = "Marijke", Leeftijd = 40 },
    new Personen { Name = "Judith", Leeftijd = 20 }
};
IEnumerable<Personen> vijftigPlussers = 
    personen.Where((persoon, index) => 
    persoon.Name == "Jan" || index == 4);
Console.WriteLine("Vijftigplussers:");
foreach (Personen persoon in vijftigPlussers)
{
    Console.WriteLine(persoon.Name);
}

Deze lambda-expressie is verschillend. In deze code is de predikaat functie van het type Func<Personen, int, bool>. De parameter int geeft de positie van het element in de invoersequentie weer.

JI
2015-10-25 12:50:57